package com.lzdongrui.system.mapper;

import java.util.List;
import com.lzdongrui.common.core.domain.entity.LeaveSet;
import org.apache.ibatis.annotations.Param;

/**
 * 请假流程设置Mapper接口
 * 
 * @author hjs
 * @date 2023-05-18
 */
public interface LeaveSetMapper 
{
    /**
     * 查询请假流程设置
     * 
     * @param id 请假流程设置主键
     * @return 请假流程设置
     */
    public LeaveSet selectLeaveSetById(Long id);

    /**
     * 查询请假流程设置列表
     * 
     * @param leaveSet 请假流程设置
     * @return 请假流程设置集合
     */
    public List<LeaveSet> selectLeaveSetList(LeaveSet leaveSet);

    /**
     * 新增请假流程设置
     * 
     * @param leaveSet 请假流程设置
     * @return 结果
     */
    public int insertLeaveSet(LeaveSet leaveSet);

    /**
     * 修改请假流程设置
     * 
     * @param leaveSet 请假流程设置
     * @return 结果
     */
    public int updateLeaveSet(LeaveSet leaveSet);

    /**
     * 删除请假流程设置
     * 
     * @param id 请假流程设置主键
     * @return 结果
     */
    public int deleteLeaveSetById(Long id);

    /**
     * 批量删除请假流程设置
     * 
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteLeaveSetByIds(Long[] ids);

    /**
     * 通过部门id获取对应部门的部门审核组信息（假期审核用）
     *
     * @param userDepId
     * @return
     */
    LeaveSet selectDepInfoAndAdGropInfoByDpId(Long userDepId);

    /**
     * 通过学院id获取部门审核组信息
     *
     * @param userDepId
     * @return
     */
    List<LeaveSet> selectLeaveSetListByCollegeId(Long userDepId);

    LeaveSet selectLeaveSetListByCollegeIdAndLevel(LeaveSet leaveSet1);

    /**
     * 查询当前部门的上一审核级别
     *
     * @param leaveSet1
     * @return
     */
    LeaveSet selectUpLeaveSetListByCollegeIdAndLevel(LeaveSet leaveSet1);

    /**
     * 通过部门id、学院id获取部门审核组信息
     *
     * @param departmentId collegeId
     * @return
     */
    LeaveSet selectLeaveSetListByDepartmentIdAndCollegeId(@Param("departmentId") Long departmentId, @Param("collegeId") Long collegeId);
}
